#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
初始化BUG管理系统
为所有现有项目添加默认的BUG状态和优先级
"""
import os
import sys
import django

# 设置Django环境
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sass轻量级BUG管理平台.settings")
django.setup()

from web import models


def init_bug_system():
    """ 初始化BUG管理系统 """
    # 获取所有项目
    projects = models.Project.objects.all()
    print(f'找到 {projects.count()} 个项目，开始初始化BUG系统...')

    # 定义默认的BUG状态（简洁表述）
    default_status = [
        {'name': '待解决', 'order': 1},
        {'name': '解决中', 'order': 2},
        {'name': '已解决', 'order': 3},
        {'name': '已验证', 'order': 4},
        {'name': '已关闭', 'order': 5},
        {'name': '已拒绝', 'order': 6},
    ]

    # 定义默认的BUG优先级（简洁表述）
    default_priority = [
        {'name': '高', 'order': 1},
        {'name': '中', 'order': 2},
        {'name': '低', 'order': 3},
    ]

    # 为每个项目更新BUG状态和优先级
    for project in projects:
        print(f'更新项目: {project.name}')

        # 删除所有旧的状态选项
        models.BugStatus.objects.filter(project=project).delete()

        # 删除所有旧的优先级选项
        models.BugPriority.objects.filter(project=project).delete()

        # 添加新的状态
        for status in default_status:
            models.BugStatus.objects.get_or_create(
                name=status['name'],
                project=project,
                defaults={'order': status['order']}
            )

        # 添加新的优先级
        for priority in default_priority:
            models.BugPriority.objects.get_or_create(
                name=priority['name'],
                project=project,
                defaults={'order': priority['order']}
            )

    print('BUG系统初始化完成！')


if __name__ == '__main__':
    init_bug_system()